I can recommend OSMand for offline mapping. You can download datasets on a per country, and even per region level (so just Baden-Wurtemberg, not all of Germany, say). You can also say just road maps, or full maps, with contours, (or if you want, just contours, but I'm not sure why you'd only want the contours...).
More over, you can overlay GPX routes, but IMHO, the most useful feature of all, you can do POI overlay. This allows you to select say Water fountains/taps, or gas stations, and they appear on the map as little icons. On my way to Hell last year I had Gas Station on POI overlay, and basically cycled from gas station to gas station (there are few other commercial resources in rural scandiwegia), it's not always accurate on whether the gas station was still open (had one that was on map, but closed down a while back), but still very useful. When cycling in .NL, I tend to have the drinking water overlay enabled, so I can ride from water tap to water tap. I've even added water taps to OSM through OSMand when I've found taps that aren't on the map. Very useful.
Different countries data sets are different sizes, NL has one of the largest in Europe, largely due to the quality of the OSM data for NL. But you're looking at anything from 80MB per country upto 2GB.
In short: I really like Osmand...
J