Those little grey circles are checkpoint discs. They bounce up and down until touched, then they disappear and set the current checkpoint.
For as long as you have lives left, when you die and the level restarts, you begin at the most recently collected checkpoint spot and any enemies already killed are gone, as well as any pickups already collected.
If you run out of lives or exit the level via the menu then come back in again, everything is reset to normal.
This makes the lives system make a bit more sense now. Only thing left is to make the word "CHECKPOINT" appear on the screen when you get the checkpoint disc, as it is not too clear what it does otherwise.
Suggestion: don't make the checkpoint disappear. Once the player "checks a point", change the hue (to something vivid as opposed to neutral gray), so players will have a clue where they left off (they can link a visible icon to a recent checkpoint event). Disney's Hercules does this, and I'm sure tons of other games have something similar.
Other than that, the overworld looks great. This art-style is really fitting and reminds me of some good old times, when I (amongst others) was programming some of my first games in VB6.
Small tidbit: the spikes now resemble more of an iron fence. Spacing them apart and making them cone-shaped as opposed to rectangular might do the trick. Kind of like a "bed of nails" :-). Easy talking as you have to do the art yourself, and I bet you already knew it too.