You can combine quads of 2 models, if you create a custom IBakedModel .   First, create 2 model jsons - main one for fluid (should be the one loaded by mc) and one for other things. Subscribe to ModelBakeEvent , retrieve fluid base model from registry with resource location. Now load your second model (with carpets, blanks and stuff). Then you take these 2 models and pass them to your own IBakedModel . In your custom model, implement methods by redirecting to one of models. As for getQuads , create a list and add all quads from getQuads for both models. Now, you just have to replace fluid model in registry with custom one, a bit of debugging and it should work.   I wrote a system that does that, though it may be too much for your needs (it allows per vertex modification), which you can find here.