Avoiding a full equals on hashcode mismatch saves time here.
Replace open-coded .clone() with .clone()
We have a caching getMaxStackSize on ItemIdentifier, use it.
isDamagable -> isDamageable, also use it in a few more places