The weight and volume calculations on folding vehicles appears to be reversed.
My current vehicle has 210 volume and 21 weight when it should be the other way around. Adding any weighty item makes its volume shoot up massively, adding a single solar panel (modded to be foldable) makes its volume shoot up to 610.
tmpstream << (total_mass() * 1000);
bicycle.item_vars["weight"] = tmpstream.str();
// TODO: how to calculate the volume?
tmpstream.str(std::string());
tmpstream << (total_mass() * 10);
bicycle.item_vars["volume"] = tmpstream.str();
So both volume and weight are based off of the total mass it seems. It looks like making the volume *1 and the weight *10000 would make it behave more the way you’re expecting, but it seems like a better long term solution would be to add a separate “volume_folded” attribute to foldable parts, and probably to leave the other numbers the same. I’d like to test out assume numbers before coding anything, but this is on my radar.