First, just so you're clear, there really is no such thing as a hard radius for an atom or ion. It's a purely experimental parameter.
Of your two potential explanations, #1 is certainly the most important for most ions. But I don't regard #2 as nonsense at all, although in most cases it's not a large contributor to the effective ionic radius. If you have two electrons in the same shell, they will shield each other. For instance, in the case of Mg, each 2s electron partially blocks the other from the full power of the nuclear core charge (because each electron spends some of its time closer to the nucleus than the other). If you were able to remove a single electron, the effective core charge felt by the other would be increased, which would lead to some degree of contraction. But Mg+ doesn't really persist for any length of time, and since the ionic radius is basically determined by measuring the inter-nuclear distance and dividing by two, you won't really find any values for the ionic radius of Mg+ to demonstrate this effect.
Technically speaking, the 2s electrons of Magnesium also shield the 1s electrons because of penetration effects, but the degree of it is very tiny. Nevertheless, this does mean that removing the 2s electrons will also cause contraction of the 1s electrons. Therefore some of the observed smaller atomic radius of Mg2+ compared to Mg is resulting from your explanation #2. But, it's such a small effect compared to the loss of an entire shell that it's almost not worth mentioning. I can't put any exact numbers on it off the top of my head but of the ~45 pm difference in radius between Mg and Mg2+, I'd guess your explanation #2 accounts for no more than ~2 pm of it. To find out for sure you'd have to do some kind of calculation of the atomic wavefunctions to see what kind of contraction you get for the inner shell electrons when you remove those in the outer shell, or look for indirect evidence (photoelectron spectra, possibly).