This is what I came up with.
Watching the logs, you can see that something (Forge?) updates the EntityEnderman::carriableBlocks field to a boolean[4096], but that happens at runtime somewhere and doesn't account for any custom entities that may be copying the original EntityEnderman.java file from Forge. This code COULD be shorter if your blocks subclassed a subclass of Block that ALWAYS had an isCarriable boolean field and you only used the EnderSafe class to register a subclass of Entity GUARANTEED to have a boolean[] carriableBlocks field, but I wanted the methods to serve as replacements for GameRegistry.registerBlock(Block block,String name), EntityRegistry.registerGlobalEntityID(Class<? extends Entity> entity,String name,int id), and EntityList.entityEggs.put(Object id,Object eggInfo) without imposing tighter coupling against the parameters.
I'm not sure how much I LIKE this as a solution, but I didn't find anything else internal to Forge or Minecraft, so I hope it helps anyone else who is having this problem, even if it's only helping them to find a better solution.
Frankly, since Forge handles the array for EntityEnderman, you COULD just write all of your Entities to have a carriableBlocks array big enough to start with, but that's just TOO simple, right?
public static boolean[] carriableBlocks = new boolean[A_REALLY_BIG_NUMBER];
Good luck.