What the heck are these leaves? They are called Oak leaves in the inventory but have a missing texture, at first I thought it was some weird texture pack glitch but I'm currently traveling and even on my 2nd computer the leaves are still missing textures. Grabbing leaves from a tree just gives me normal oak leaves without a missing texture.
What does it say in the tooltip that appears when you mouse over the item (press F3+H to enable advanced item tooltops if necessary; in 1.12.2 and earlier versions it it will show the numeric block ID and another number, e.g. normal oak leaves are 18:0)? Since 1.8 only values 0-3 are considered to be valid items and will render normally (1.6.4 happily accepts any data value for any block or item, regardless of whether it is valid, and it will properly render, and values 4-15 are actually legal values for leaf blocks placed in the world. However, 1.8 made it so that every block variant is a "block state" and each "state" has be registered for it to render properly, which only includes data values 0-3 for leaves).
18:4 are oak leaves with the "check for decay" bit set, which is used by placed blocks to signal that they need to check if they need to decay, distinct from player-placed leaves which use a different bit; in either case they should never drop even with Silk Touch:
Although the Wiki seems to be incorrect, they claim that DV 4 means that the "check for decay" bit is set but according to MCEdit it is DV 8, at least in 1.6.4 (if this was changed in a later version it would have broken everything using player-placed (permanent) leaves since they use DV 4 in 1.6.4 so they would have been switched around):
Either way, leaves with data values other than 0-3 should never drop, I can only guess it is due to a mod which doesn't properly handle the data values when dropping a block via a method like shears or Silk Touch:
public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6)
if (!par1World.isRemote && par2EntityPlayer.getCurrentEquippedItem() != null && par2EntityPlayer.getCurrentEquippedItem().itemID == Item.shears.itemID)
this.dropBlockAsItem_do(par1World, par3, par4, par5, new ItemStack(this.blockID, 1, par6 & 3));
(note the & 3 at the end of the last line, which is a logical AND operation which restricts the data value to 0-3. The Silk Touch code has similar handling)
That said, it appears that 1.4 did not have this code so they dropped any data value, and worlds which were upgraded to newer versions will retain them, eventually breaking in 1.8 (in 1.7.10 and earlier they will render properly but will always be named "oak leaves", including spruce, birch, and jungle variants):
Items used the same general format until 1.13 (ID and "damage", which was called this regardless of whether it was actually a tool), with the exception that 1.8 changed item IDs from numerical IDs to strings when saved with the world (since 1.13 numerical IDs aren't used at all); what changed in 1.8 is how the game handles block and item rendering, where every single valid block and item (defined by the ID and damage) needs to be added to a registry, otherwise it has no idea how to render it so it defaults to a missing texture cube. Leaves only register damage values above 3 when registering the block form so the items will get a missing texture; likewise, some blocks completely lost their item forms (for example, in 1.6.4 I can do "/give @p 9 1" to give myself a water block item, which renders as a 2D sprite with "thickness" (like glass panes, tall grass, etc), but such an item no longer exists in 1.8 so you'll just get an error; loading an older world with such items in the inventory may cause them to be lost entirely).