CiviCRM for selection and subscription to paid online content
Very cool!

I think this has webform civicrm written all over it; 

First thoughts:

20 Membership types -> 20 checkboxes on one webform 
+ annual fee;
inject specific waivers based on Membership type selection(s)

All on one multi-page form!

Use Membership Role Sync to map Memberships to Drupal Roles so you can use Drupal access/permissiom to give hikers access to maps for specific sections from their /user account;

Those are just first thoughts - you can totally get very far native Drupal/CiviCRM on this.