Use a deferred registry to register a new appropriate entity type. You will have to create and use a casting method to satisfy
the bounds of generics there. Specify its size, 1.0 is 1 block dimension. If the entity is mobile, make sure to size it smaller than
whole numbers, e.g. use 3.9 instead of 4.0. Otherwise the entity will keep getting stuck on blocks while moving.
Register attributes using EntityAttributeCreationEvent.
Register a spawner item for the entity in your item registry of class ForgeSpawnEggItem.
Make an item model appropriate to the spawn egg, it should contain just string '"parent": "minecraft:item/template_spawn_egg"'.
Design a model (preferably in BlockBench), texture it, then save everything and export.
Put the model into your project, generate necessary imports, setup animations.
In your client setup handler, register model layer definitions using EntityRenderersEvent.RegisterLayerDefinitions.
There as well, register a renderer via EntityRenderersEvent.RegisterRenderers.