found while testing the new floating point precision loss fixes.
Basically, this affects only the embers thrown out by the campfire. At high coordinates, they can come from points even outside of the campfire, but usually come from the corners.
This is best tested when greater than 16,777,216 blocks out on both axes, so being 20 million blocks out should suffice. This issue is without a doubt due to incorrectly casting to a 32-bit float from an integer or double, resulting in numerical precision being lost. This can be fixed by simply not casting to a float, which eliminates any chance of losing any precision.
Related tickets: MC-182789
Confirmed bug. Went from 0,0 to +29million x & z. https://youtu.be/iZrUQJD3R9U