Great! Happy that it helped.
Yeah, at first, I was not sure what the issue was, then after writing the code I realized it, but forgot to edit my initial text. My apologies for the confusion.
1) Basically the issue is mp.removeLayer() only takes a reference to a Layer object, not layer name. That's the way it was defined in Arcpy and I believe that was the root of the issue here.
2) As you probably know,, "for loop" goes into the list (or other iterable objects) and takes the elements out one by one and returns them to you. Sometimes the order of the elements in that list matters to you. In that case you can set a counter manually to know about the position of an item in the list. Alternatively, Python has a built-in function called enumerate that helps with that.
Enumerate takes the list, loops over it and returns two items at a time, the first item is the index of the element in that list (starting from 0) and the second one is the actual element. Also c, n can be called whatever you like.
Hope it make it more clear for you.
P.S. I will edit/update my initial response to be more clear just in case other people land here with the same issue later.