public static String getBlockFriendlyName(int blockID, int subType)
	{
		Integer numSubTypes = mapNumSubtypes.get(blockID);
		if(numSubTypes == null) numSubTypes = 1;
		if(numSubTypes <= 1)
		{
			String key = blockID + ":0";
			String res = mapItemNames.get(key);
			return (res != null) ? res : ("BlockID_" + blockID + ":" + subType);
		}

		// Reduce by next highest power of 2...
		// This is because the dmg value may include other bitwise markers like directional attribute
		int powTwo = 2;
		for(int i=0; i<5; i++)
		{
			if(numSubTypes <= powTwo)
			{
				subType %= powTwo;
				break;
			}
			powTwo *= 2;
		}
		// Lookup based on refined dmg value...

		String key = blockID + ":" + subType;
		String res = mapItemNames.get(key);
		if (res != null) return res;
		
		res = ("BlockID_" + blockID + ":" + subType);
		//System.out.println("----- DBG: " + res + " -----");
		return res;
	}