What happens is when Mojang release a version or snapshot they run it through an obfuscator, this renames everything to what looks like gibberish and no longer has the same organization system (the hierarchy of files and folders is flattened) but is still valid code, some obfuscators go a step further and make slight tweaks to make things more efficient, an example of this is it might remove code that is never accessed (This is what creates the difference between the client and server with code that both use).