I spawn many human entities and using PlayerSkinPacket lets them have the same skin. But that will result in a large volume of skinData being sent many times. So is there a way to let the client cache that skin? I discovered that the PlayerSkinPacket has some fields that seem to have no effect, are those fields the key to caching? What are those fields for?
The skin system is a mess. I couldn't tell you why the ID still exists today, but historically it was used to select the appropriate skin model (alex, steve, alex-with-cape, etc). To the best of my knowledge there is no way to utilize skin caching. This would be a nice to have feature though.