Why they are printed to serial? Simply for this initial debugging purpose, checking that they work as I expect.
Then, I'd expect it to happen as soon as the value was calculated.
Is it okay then to do 3 * tooth_spacing * 1000000UL, or do I need to specify the other terms as UL?
The largest type in any computation defines the type/size of registers used to perform the calculation. As long as one term is UL, the whole calculation is UL.