"Bake" UV Coordinates to Another Texture

This question might deceive you at first, so please read on.

I have a mesh that is mapped to another texture, and has been fit, coordinates moved, to account for the placement of other objects’ maps. But now I want to move this mesh’s UV to its own map.

I am content with the dimensions and relative coordinates of the original map, but would like it to be fit into the square that the new map is, since the original UV map is all over the place. I would describe what I want to do as “compacting islands” so that there is as little space as possible between the islands, and no overlaps while maintaining the same scale relative to each island.

Is there a plugin or method to do this?

create the new uvmap, set it to default, explicitly point the original bitmap to the older uvmap, bake color to the new uvmap.