Well, using the same scheme that Eclipse does sound good to me :
M1, M2, ... Mn untill all features for a version has been implemented. Each milestone is just used to deliver e preview of some features, being clear that all the features are known RC1..RCn are release candidate. Sounds pretty ok. So, if you use Milestone instead of odd numbers I think it will work without any probleem, and the semantic might be quite clear. Just a last point : when moving form a X.Y to a X.Y+1, do deprecate the old API, do not remove it. You can remove them in X+1.Y (just a question of easing the migration ;) To be short, +1