MAWP, 1716 bytes
!!M:!!A:!:!!M!M:. chr:pos:stack ! : 1 : [1,1] ! : 2 : [1,1,1] M : 3 : [1,2] : : 4 : [1] ! : 5 : [1,1] ! : 6 : [1,1,1] A : 7 : [1,0] : : 8 : [1] ! : 9 : [1,1] : : 10 : [1] ! : 11 : [1,1] ! : 12 : [1,1,1] M : 13 : [1,2] ! : 14 : [1,2,2] M : 15 : [1,4] : : 16 : [1]