No worries! We all have days like that.
Heck, there have been times when writing up a post to as a question or figure out a bug, I'll arrive at the solution.
It's called rubber duck debugging.
You can't remove the blocks from being in existence, but you can remove them from the world.
There's an OreGen event, you would just need to subscribe to it, then cancel it.
(I'm blanking on the exact name atm)
You don't use "inventory" for metadata blocks. Well, you can, but you need to then supply a JSON item model file to specify which texture to use (this is how vanilla does it). It's way easier to reuse the blockstate json for item models when possible (all hail Forge).
This is why there's all that StateMapper#getPropertyString() stuff: we need to know what the state mapper says the variant string is so we can tell the Model Loader what variant model to go locate data for from the blockstate json.
Hello MrWisski, long time no see o/
Are you sure that BlockSoil:: initModel is actually called? Your ClientProxy#registerModels calls ModBlocks::initModels but does that reach BlockSoil::initModel?
Are you sure that BlockStateContainer::getValidStates return the appropriate states, or does it only return a list containing the default state?
If worse comes to worst, you can likely create your own ICustomModelLoader and create the baked models specifically for these ItemBlocks, but that's like lighting a candle with a flamethrower mounted on a tank.
Jabelar's stuff is great. I used his article on updating older mods (yes, I have it bookmarked) to update mine from 1.8 to 1.11. Jabelar is great at diving deep into specific subjects and explaining things that others don't. For brand-new, from-scratch stuff, I usually recommend Shadowfacts tutorials. I've occasionally used McJty's tutorials, as well. You can also learn a ton by browsing Choonster's test mod and/or The Grey Ghost's Minecraft by Example.