EntityRenderersEvent.AddLayers and use EventPriority.LOWEST so that your handler runs last (after mods have potentially added their custom layers).
EntityRenderDispatcher#renderers and EntityRenderDispatcher#getSkinMap.
You'll have to loop through all entity renderers at startup. Check if it is a LivingEntityRenderer. If so, get its render layers (LivingEntityRenderer#layers using reflection) and loop through them as well. Check if any of them is a CustomHeadLayer. If so, get its CustomHeadLayer#skullModels field and put your model in there as well.
Alright, so the item works now but the equipping feature crashes the game.
It seems that when equipping a skull, the game calls "CustomHeadLayer" which calls SkullBlockRenderer (and I need it to call my custom renderer).
How do I fix that?