I get the feeling that Mojang is still kinda figuring out how to do a lot of things when it comes to making a game, because a lot of their design decisions are very beginner-style mistakes.
I agree, but honestly I think a lot of it is coming from idle hands. There's a lot of rewriting of things for the sake of rewriting them, even if the benefit doesn't really outweigh the huge effort they put in. Sure, they wanted a model format added to the game. No problem. It could have been added to 1.7.10's engine in a week. Modders already did this, after all. Modders have also created some freaking awesome block, item, and entity models in this game, which exceed anything Mojang ever made to be blunt. So obviously an engine rewrite was not necessary.
I just watched Rorax's video the other day where she was talking about the advantages of using a professional modeling program, and she mentioned the Wavefront model format for making Minecraft models, and I completely agree. I've used it in non-Minecraft stuff before. It's a text-based format which can do quite a lot despite its simplicity and ease to parse, and it's supported in just about any 3D modeling program (including Blender). But instead of using a standard format, Mojang invented their own proprietary one, in JSON of all things, which is full of limitations. Then to make matters worse they wrote a back-end that's so convoluted and memory-intensive with abstraction that they achieved little to no benefit from it. Literally none of that extra garbage was necessary just to add models. Now even threading will be an issue for modders. And for what? For every person who got a better framerate, someone else got a worse one. And the implications of this system when filled with mods is going to be bad.
I mean, I get why they came up with the model format that they did. They wanted something really simple that just some average young person or non-tech-savvy individual could figure out and whip up a model with. That's fine, I don't actually mind it in that regard. But then they had to do it in JSON, which is the opposite of being user-friendly. The very audience they're targeting with it is going to end up fighting with brackets and commas, and all the cryptic issues that come from that. They could have written their own incredibly simple text parser for a very similar format.
Have you guys ever looked at just how many external code libraries vanilla Minecraft requires now? Thirty.
Thirty! And one of those is required just for the JSON parsing. Minecraft used to use three libraries, for comparison. Meanwhile, the game grew by almost a thousand (!!!) more classes just since 1.6, with 1.7 being when the bloat really started to roll in.
So one wall of text later, my point is basically that the game is bigger for no reason other than somebody wanted to write fancier code, and the game ended up no better for it.