Blender Internal here. Texture is scaled to maintain circle as circle. And has offset to put it (circle) in the center.
With Generated (cube) mapping it is almost good, except one moment where tiles do not follow each other in one direction.
With UV map I can rotate those parts to match direction, but everything else is messed.
I've tried to use min/max Crop settings with no luck (by the way, does Crop actually scale rather than crop?)