Really nice work. I like your first print and this one is great as well, can't wait to see what's next. They have a nice organic, rich and detailed feel for the size, plus the strong color. Maybe it helps how you modeled it in ZBrush with a nice clay look.

Have you attempted to hollow it out in ZBrush using Dynamesh and Decimation Master? Though, they might be too small to get a channel through the legs, out the base with 2mm walls. But you never know, making them slightly bigger to support being hollow might still come out lower cost than a smaller solid one. Then again, maybe you want them all at a consistent size for something.

You need to take it a step beyond that.
The inside and the outside need to be one single mesh.. you need a "drain hole" for the trapped support material to drain out of the model.
The size of the drain hole varies per material.

I often take a mesh, shrink it by some value, and then subtract that copy from the original, then subtract a 2nd object from the result so as to create an opening.

If you were to simply upload a positive and negative mesh together, MeshMedic (the automated software) would end up removing the inner mesh, and your model would end up being very expensive because the result is a solid block.

Patience, Persistance, Politeness - the 3Ps will help us get us to Perfect Printed Products

Zbrush has some handy tools for hollowing out an entire model with an escape hole. It will generate the interior mesh without the problem of small details inverting or exploding. The key is dynamesh. Dynamesh has a shell option with a thickness setting along with a Boolean operation to create a hole in one fell swoop.

1: merge the sub tools into one tool that need to be one mesh for hollowing, such as the body, skull and base.

2: turn on dynamesh under geometry. Uncheck project details I think. Set the res to 700+ so that when it remeshes it will have sharp lines where it merges the meshes into one and prevent detail lost. It will also keep the polypaint.

3: after those settings are activated, you'll then right click and drag in open space , like deselecting a mask, which will cause it to redo the mesh based on the dynamesh settings. I'm not at my PC right now, so I hope I'm remembering this right.

4: the main model is now one dense solid mesh, probably 1-3 million polys. Next decide where you want an escape hole or two. I find appending a cylinders to a new sub tool helps to size and position where to plan to create the hole. Have it intersecting deep enough that it would be pass through the wall thickness you have planned.

5: set that new cylinder sub tool to subtract in the sub tool palate, those little icons with circles indicating how it will Boolean . Oh, also turn this cylinder sub tool a dynamesh too.

6: merge you main model sub tool from earlier with this cylinder sub tool . If the cylinder was set right, its poly group should appear white after merged.

7: dynamesh should still be active. Set the thickness, which unfortunately is a random guess. So save a new project with each step for easy backtracking. Try setting 10. Then click create shell , it should hollow it out and subtract the cylinder, hopefully creating an escape hole. Then check the thickness by hiding the geometry. If it's too thick, it might stop around the legs if you were planning to create a hole under the model

Speaking of where the hole is, to attempt to do it on the bottom of your model, you might temporary make you base taller, like 4 times thicker. This then lets you make it hollow through the base into the legs. The hole created by the cylinder on the bottom doesn't matter, as now that it's hollow, try using a cube to Boolean subtract the base back to its normal height, leaving you with the perfect shaped holes into the legs and feet. A normal Boolean is done by right click drag like before to update the dynamesh. I did that with my sitting cat model with no base. I temporarily gave it a cube base, so once it was hollow, it did another Boolean operation to remove it, leaving just the feet with perfect shaped holes.

8: decimation master. Your model is probably too many polys. Use this to reduce the polys, but first go to preferences, find decimation master, and check use polypaint. Now when you use this plugin, it will keep detail where needed to support the polypaint. Export as Vrml with color, no texture using 3d print exporter. Zip for upload.

9: size and wall thickness. You will have to export the model at a size that makes most the walls 2mm when uploading to shapeways. To figure this out, I usually open the hollow model in another 3d program, then scale height to what I want in mm, so I make it 120 units in the modeling program to act as 120 mm. Then I create a 2 unit cube to manually measure the wall thickness. From there I can increase or decrease the model size to find the right height in mm to then export from zbrush, or I hollow it again to refine the thickness.

Other software might tell you wall thickness with a single click, like netfabb free, but I haven't really used it to know what the free version offers.

I'll be glad to try this out on one of your models to help, or answer any questions where my instructions utterly fail or confusing

No problem. Though, I should see about doing a screen captured tutorial. It can be a quick procedure, but hard to explain with words without over-complicating it.

As for the key piece when creating a shell in Dynamesh, that's the negative mesh. ZBrush will complain if you don't have one when clicking shell. You can create a negative mesh two ways: 1 - Using an insert mesh brush while holding a key to make it negative as you drag it into the scene (can't recall, something like alt key) or 2 - Setting a subtool negative and then merging with a positive subtool. Again when planning to use shell, I recommend both subtools be a dynamesh before merging into the same subtool, or at least the main model, avoiding any issues of it subtracting from the model while trying to turn dynamesh on.

While you need a negative mesh to get shell to work, Pixologic suggests you can still execute shell without a hole by simply moving the negative mesh off to the side so it disappears and doesn't cut into the model. Any other time you have a negative mesh and don't use shell, updating dynamesh will subtract it from the positive mesh while keeping it solid.

Also, if I have small details that are intersecting meshes, I usually keep those separate subtools to keep the crisp intersecting edges, as long as they don't interfere with the hollow areas of the main mesh too much.