How to combat performance issues with extreme amount of Gameobjects?

I am making a game that is entirely made up of .25x.25.x25 cubes. The problem with this is that it will start to take enormous amounts of memory as the world gets bigger.

Although, every single thing that goes into the finished level will be a prefab(Most of which will be as large as the one shown in this screenshot). Is there anyway that I can make these prefabs one “solid” piece instead of very many small meshes? If not, I believe that chunk loading may be able to help with this but I know nothing about it…

I think your best option is to create the mesh programmatically. Here are some nice tutorials about that:

There are quite a few publicly available functions that can MERGE meshes. But if you are looking to reduce memory usage, you may want to find particular variants that prioritize that over speed.
For example, the faces and normals of blocks that touch other blocks, do NOT need to be specified by all the touching blocks, they only need to be specified once, if at all. Also tons of internal vertices may be eliminated entirely!

I’ve played a bit with the booleanOps asset, not sure if it will be ideal for you, but certainly wort checking out. Unity Asset Store - The Best Assets for Game Making

If you are looking to create your own function, specific to blocks (should be far simpler than generalized meshes). I’d suggest you look at this script for some ideas: http://wiki.unity3d.com/index.php?title=MeshMerger

Note: this kind of mesh merging would probably NOT be helpful if the user can dig away or add blocks (ala minecraft), at runtime