in our Lagrangian CFD we're leveraging the existence of a background grid to do everything with a flat int32 (background grid cell index) + fp32 (distance relative to cell center). It has the advantage of having the same storage space as fp64, strong GPU friendliness, uniform treatment (no need* to convert from world to local space), and in our case almost resolution independence.
* conditions apply