I exposed a method in NMS that I don't see anyone talking about, and it was very handy for my camera implementation shown below. All of this required zero hard-coded mappings, because of this little snippet! Code (Java): import java.awt.Color; import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; // ... new Color(((CraftBlock) block).getNMS().getBlock().s().rgb); From what I understand, this gets the color that would be used on the normal map for a specific block. It also takes into account it's states. Let it be known that the ".s()" method here is an arbitrary name. Due to the nature of NMS, the name of the method is not guaranteed to stay the same between versions. So, just look for a method that takes in no arguments and produces a MaterialMapColor object. EDIT: It looks like the name of the ".rgb" member is also not guaranteed. As of 1.17.1, it's ".al". If you have IntelliJ IDEA or some other similar IDE, it should come with a decompiler that you can use to determine the name of the member you are looking for.