List of model issues in Java Edition

This page aims to document some easily-fixable issues with Java Edition's default model files in as much detail as is needed.

Fire inner planes

 * Associated bug reports: 

When fire was changed to use block models in 1.8, the conversion resulting in two of the planes being converted incorrectly, resulting in subtle visual differences. This is best seen when looking at fire from above, which reveals a lack of a "square" on the inside as there was previously (and still is on Bedrock Edition, making this also a parity issue), with it instead looking more rectangular.

This is easily fixable, as the first two elements are rendering the fire texture on the wrong side, and are also rotated in the incorrect direction. Flipping these as follows yields a more correct model. The pre-1.8 model appears to apply the alternate fire texture on some of these planes, however, so it may be worth further modifying the fire model as to load both of the fire textures and apply them accordingly.

Coral wall fan plane mirroring

 * Associated bug reports:, 

Snapshot 21w13a fixed a large number of 2D block models such that the positions of pixels would remain consistent when viewed from the front and the back, rather than the texture mapping being identical on the rear, which looked strange. A small number remained, however, with coral fans being one of them. As texture mapping is all that needs changed, this is an easy fix, although care has to be taken such that no undesirable mirror symmetry effects arise.

Another thing worth noting here is that coral fan models reference a main template model. Most template models are prefixed with "template_", however coral fan template models are not, which is inconsistent and confusing. This section will not go into detail as to all that needs changed, as this does not result in any in-game visual differences (the changes are trivial anyway, as all of the other coral fan models just need "template_" added to their referenced parent model).

Dragon egg redundant planes and mixels

 * Associated bug reports:, 

Another casualty of flawed model conversion in 1.8, one of the top cuboids comprising the dragon egg was created at the wrong size. This not only causes the shape of the dragon egg to be incorrect, with it having a weird and pointy top as opposed to the smoother curve it had previously, it also causes the texture on that cuboid to be unnaturally squished and causing it to misalign with the usual 16&times;16 grid that blocks are expected to conform to.

The dragon egg is also a major offender when it comes to rendering extra planes for no reason. Being composed of a total of eight stacked cuboids, every single face of each cuboid is rendered no matter what, which both strains the game and bloats the model file. The majority of other model files don't define faces that can never be seen without clipping inside of the block, and faces which are obscured by adjacent blocks typically have cullface defined as to remove those faces when they can't be seen. By removing these unneccessary faces, we can reduce the model file size by seven whole lines.

There are also some other, more minor, problems with the model file:
 * The model file explicitly disables ambient occlusion. This does nothing, as the dragon egg emits a light level of 1, and all light sources will have ambient occlusion disabled no matter what. We can therefore save a line by deleting this from the model.
 * None of the textures or parent models referenced are namespaced, which is unlike a majority of other model files. While adding these namespaces may be considered as somewhat undoing the debloating discussed here earlier, it's good practice to namespace things, and Minecraft's model files should be posing as a good role model for resource pack developers.

The fixes detailed below implement fixes for both of these issues as well as the more focal hidden face removal.


 * Current as of 1.18.1

Stem crop surgery
Melon stems and pumpkin stems are perhaps the worst affected by 1.8's move to block models, with the following, comically long list of horrifying afflictions:


 * They use the shading usually reserved for larger, 3D blocks, resulting in them looking much darker than normal.
 * This was also the case for other cross-shaped blocks such as flowers, but was fixed in the following week.
 * The constituent planes are configured in a way that results in an unnatural "mirror symmetry" effect arising when viewed from some angles.
 * This too was the case for other cross-shaped blocks for a while, before eventually being fixed in the next major update.
 * The constituent planes are also very subtly wider than that of other cross models.
 * Again, this issue also arose for other crosses, but was fixed after a few weeks in their case.

Alongside this, the names of the stem template models are simply atrocious, being massively inconsistent with the very models that reference them, alongside just not having that preceding "template_".

<!-- Enclosing model files here for later incorporation into a table:

height is twice the age, plus 1

1.18.1 stem_growth4: {   "ambientocclusion": false, "textures": { "particle": "#stem" },   "elements": [ {  "from": [ 0, -1, 8 ], "to": [ 16, 9, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { "north": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, "south": { "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0 } }       },        {   "from": [ 8, -1, 0 ], "to": [ 8, 9, 16 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { "west": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, "east": { "uv": [ 16, 0, 0, 10 ], "texture": "#stem", "tintindex": 0 } }       }    ] }

1.18.1 stem_fruit: {   "ambientocclusion": false, "textures": { "particle": "#stem" },   "elements": [ {  "from": [ 0, -1, 8 ], "to": [ 16, 7, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { "north": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, "south": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } }       },        {   "from": [ 8, -1, 0 ], "to": [ 8, 7, 16 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "faces": { "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, "east": { "uv": [ 16, 0, 0, 8 ], "texture": "#stem", "tintindex": 0 } }       },        {   "from": [ 0, 0, 8 ], "to": [ 9, 16, 8 ], "faces": { "north": { "uv": [ 9, 0, 0, 16 ], "texture": "#upperstem", "tintindex": 0 }, "south": { "uv": [ 0, 0, 9, 16 ], "texture": "#upperstem", "tintindex": 0 } }       }    ] }

fixed template_stem_stage4: { "ambientocclusion": false, "textures": { "particle": "#stem" }, "elements": [ {	 "from":     [  0.8, -1, 8 ], "to":      [ 15.2,  9, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade":   false, "faces":   { "north": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, "south": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 } }   },    {	  "from":     [ 8, -1,  0.8 ], "to":      [ 8,  9, 15.2 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade":   false, "faces":   { "west": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 }, "east": { "uv": [ 0, 0, 16, 10 ], "texture": "#stem", "tintindex": 0 } }   }  ] }

fixed template_attached_stem: { "ambientocclusion": false, "textures": { "particle": "#stem" }, "elements": [ {	 "from":     [  0.8, -1, 8 ], "to":      [ 15.2,  7, 8 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade":   false, "faces":   { "north": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, "south": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 } }   },    {	  "from":     [ 8, -1,  0.8 ], "to":      [ 8,  7, 15.2 ], "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, "shade":   false, "faces":   { "west": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 }, "east": { "uv": [ 0, 0, 16, 8 ], "texture": "#stem", "tintindex": 0 } }   },    {	  "from":  [ 8,  0, 0 ], "to":   [ 8, 16, 9 ], "shade":   false, "faces": { "west": { "uv": [ 0, 0, 9, 16 ], "texture": "#upperstem", "tintindex": 0 }, "east": { "uv": [ 9, 0, 0, 16 ], "texture": "#upperstem", "tintindex": 0 } }   }  ] } -->


 * Current as of 1.18.1