Thank you for the clarification.
I suppose what you described are correct in general.
y value of -3 corresponds to that the bottom face of 3D box is 3 meters away from the ground, given the relative-center convention of (0.5, 1, 0.5) in CameraInstance3DBoexes.
And this is unreal like you mentioned. Only reasonable theory for such case I can think of is, the relative center of y in your codebase was somewhat and somehow changed from the convention, e.g., (0.5, 0.5, 0.5).
With the relative center of (0.5, 0.5, 0.5), y value of -3 means the gravity center of 3D box is 3 meters away from the ground. Still uncommon but some trucks or trailers might have such values for y.
Simple practice to test out this theory would be compensating the y value written in the json by the half of dy.
If this modification fixes the tilting issue, the source of issue would be relative-center configuration.
Another thing worth to test would be measuring the degree of tilting over distances of objects.
If the tilting issue happens regardless of how far the observed object is placed, I suppose there is something to do with the coordinate conversion, e.g., relative center.
However, if you find some tendency like 'the further the object is the degree of tilting gets worse', it might be the standard out-of-distribution issue (model being tested on outside of trained domain normally present lower performance ).
I cannot guarantee when but if you can share the name of model in mmdetection3D, I will go over it.