You should leave all landscape maps (height maps not texture maps) as png or bmp otherwise different clients may decode them differently. Png is probably just as good as BMP for high rez textures it is lossless and compressed.
png files use a similar compression technique to zip. it’s a kind of dictionary coding. compressed size/efficiency depends on the amount of repetition in the image. jpeg uses something called quantisation (ie, the colour values are quantised (rounded)) before compression, which breaks any repetition and often leads to a larger file than png. cool for photo’s, bad for stuff with blocks of solid colour.
the question about metadata:
removing jpeg metadata won’t affect image quality in any way. y’should also remove superfluous ancillary chunks from png files if you want the smallest sizes. (same sort of thing)
if you really want to squeeze every byte, most image editors will give you the option of reducing the number of colours. your bmps need to be 24bit, but there’s nothing to say a 24bit bmp cant have only 128 colours.