What's the REAL point of LWJGL 3?
A lot of those retro mods that want to see what Minecraft would have been use LWJGL 3 and that is very unauthentic as it wasn't a thing back in the day.
And some time ago on this very subreddit I asked this exact question, and the response was: LWJGL 2 had bad controller support, and that's why LWJGL 3 was needed.
Back then I took it as fact as I had no evidence to prove otherwise, but now I do.
So, for context, I am remaking an old mobile game, in Java using the JSFML library, and yesterday I thought about adding controller support to it.
SFML itself does not support gamepad controllers but there is this handy library called jinput which does, and it just so happens that it's included with literally every version of Minecraft.
I yanked jinput and jutils (a dependency of jinput) straight from my 1.7.10 .minecraft folder, added some changes to the event loop, and with very little hassle I have controllers working in my game now. Without any LWJGL involved.
I daresay adding controller support was easier than polling the keyboard events. The only hassle involved was the dirty hack to extract the natives and restart the JVM to use them, which Minecraft doesn't need to do because it uses launchers for that very reason.
The Joypad mod for Minecraft (yep, for 1.7.10 as well) does a similar thing. It also bundles its own copy of LWJGL for some reason, but it's also LWJGL 2.
So, it is possible to add gamepad support with LWJGL 2. It's not janky, it's not hard.
What is then the reason so many beta mods switch to LWJGL 3?