here is a copy of the little program i used to successfully create an iso.
http://pastie.org/1070389 it requires the qt framework to build and run. if you don't want to use qt, then you will have to rewrite parts of it.
once you have the program, just get the size of the data partitions and use them as the last 2 arguments. here is what the command to make mariokart_usa -> indiana_jones_pal, with a bit of extra padding.
Code:
./Frankenstiin MarioKartWii.iso indianaJones.iso output.iso 105ee0000 107bc0000