This solution is untested.
Sneak Preview
- - - -
- - - - - - - - - - - . . |
| . . 0 . ^ ^ ^ ^ ^ ^ . . |
| . - - . - - - - - - - ^ |
- - . . . . . . | . . . | ^ |
| . . . . . . . + . 0 . | ^ |
| . . . . . . . | . . . | ^ |
| - + - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . 0 . | . | . | # . < . . |
| . . . | 0 | . | . . . . . |
- - - - | . 0 . - - - - - - |
| . . 0 . . . - - . |
| . - - 0 . . . | . |
| . . . . 0 - . | . |
| . - . - . 0 . | . |
| . . . 0 . . 0 - S |
- - - - - . . . 0 . |
- - . > . . |
- - - - - -
Label the Boulders
- - - -
- - - - - - - - - - - . . |
| . . M . ^ ^ ^ ^ ^ ^ . . |
| . - - . - - - - - - - ^ |
- - . . . . . . | . . . | ^ |
| . . . . . . . + . N . | ^ |
| . . . . . . . | . . . | ^ |
| - + - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . K . | . | . | # . < . . |
| . . . | J | . | . . . . . |
- - - - | . H . - - - - - - |
| . . G . . . - - . |
| . - - F . . . | . |
| . . . . D - . | . |
| . - . - . C . | . |
| . . . E . . B - S |
- - - - - . . . A . |
- - . > . . |
- - - - - -

Step One: Getting Started
  1. Find the secret door.
  2. Push E two spaces west.
  3. Push J five tiles north.
  4. Take M, then J, then K.
- - - -
- - - - - - - - - - - . . |
| . . . . M J K ^ ^ ^ . . |
| . - - . - - - - - - - ^ |
- - . . . . . . | . . . | ^ |
| . . . . . . . + . N . | ^ |
| . . . . . . . | . . . | ^ |
| - | - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . . . | . | . | # . < . . |
| . . . | . | . | . . . . . |
- - - - | . H . - - - - - - |
| . . G . . . - - . |
| . - - F . . . | . |
| . . . . D - . | . |
| . - . - . C . | . |
| . E . . . . B - + |
- - - - - . . . A . |
- - . > . . |
- - - - - -
Step Two: Breaking the Line
  1. Bring N out and take it.
  2. Push H one tile west and take it.
  3. Push G two tiles east.
  4. Push F one tile south.
- - - -
- - - - - - - - - - - . . |
| . . . . . . . N H ^ . . |
| . - - . - - - - - - - ^ |
- - . . . . . . | . . . | ^ |
| . . . . . . . - . . . | ^ |
| . . . . . . . | . . . | ^ |
| - | - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . . . | . | . | # . < . . |
| . . . | . | . | . . . . . |
- - - - | . . . - - - - - - |
| . . . . G . - - . |
| . - - . . . . | . |
| . . . F D - . | . |
| . - . - . C . | . |
| . E . . . . B - + |
- - - - - . . . A . |
- - . > . . |
- - - - - -
Step Three: Extracting F
  1. Go around and push B one tile north.
  2. Push E east until it is next to C.
  3. Push D one tile south.
  4. Push F west to the wall and take it.
- - - -
- - - - - - - - - - - . . |
| . . . . . . . . . F . . |
| . - - . - - - - - - - ^ |
- - . . . . . . | . . . | ^ |
| . . . . . . . - . . . | ^ |
| . . . . . . . | . . . | ^ |
| - | - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . . . | . | . | # . < . . |
| . . . | . | . | . . . . . |
- - - - | . . . - - - - - - |
| . . . . G . - - . |
| . - - . . . . | . |
| . . . . . - . | . |
| . - . - D C B | . |
| . . . . . E . - + |
- - - - - . . . A . |
- - . > . . |
- - - - - -
Step Four: Clear the Middle
  1. Push G west to the wall and take it.
  2. Push D north to where G was and take it.
  3. Push E one tile west and four north.
  4. Take E the same way as G and D.
- - - -
- - - - - - - - - - - . . |
| . . . . . . . . . . . . |
| . - - . - - - - - - - G |
- - . . . . . . | . . . | D |
| . . . . . . . - . . . | E |
| . . . . . . . | . . . | ^ |
| - | - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . . . | . | . | # . < . . |
| . . . | . | . | . . . . . |
- - - - | . . . - - - - - - |
| . . . . . . - - . |
| . - - . . . . | . |
| . . . . . - . | . |
| . - . - . C B | . |
| . . . . . . . - + |
- - - - - . . . A . |
- - . > . . |
- - - - - -
Step Five: Finish
  1. Push B one tile north.
  2. Push C one tile west and take it like E.
- - - -
- - - - - - - - - - - . . |
| . . . . . . . . . . . . |
| . - - . - - - - - - - . |
- - . . . . . . | . . . | . |
| . . . . . . . - . . . | . |
| . . . . . . . | . . . | C |
| - | - - . - - | # # # - + |
| . . . | . . . | . . . . . |
| . . . | . | . | # . < . . |
| . . . | . | . | . . . . . |
- - - - | . . . - - - - - - |
| . . . . . . - - . |
| . - - . . . . | . |
| . . . . . - B | . |
| . - . - . . . | . |
| . . . . . . . - + |
- - - - - . . . A . |
- - . > . . |
- - - - - -
  1. If you want to free B, relocate A first.
  2. Then push B south and get behind it.