If you find it quite difficult to read the code recommended, a good way to learn someone elses code (without documentation) is to first look at the functions and routine names. Study the procedures, comment the uncommented parts. Play with the settings, see what they change.
In agreement with Brandons point about limb methods.
Your goals are pretty complicated if you are just starting out. But I can see how your task can be accomplished.
It is possible for one object to use about 8 textures, and each texture can contain as many sub-textures your graphics card can pack into one. These using a sub-texture atlas images, a grid of images can then be applied to your different blocks in the same object.
Because of that, it would be wise to define your world as a few objects with lots of limbs; rather than just a series of objects in the first place.
Each limb would then use UV coordinates to pick the texture you need from one of the 8 packs, in the first place. Thus, the blocks are limbs; rather than objects.
Furthermore what the player sees is the same object everywhere, you just layout their current view of nearby land using the object and exclude excess limbs (Frustum culling).
Anyway, you'd need alot of time and dedication to get that working; but it's not the end result, it's the journey, it's the enjoyment of the challenge