here's a different kind of spiral that allows you to set direction and winding: `spiral[L_,n_:1,dir_:1]:=If[Length[L]==1,{L},spiral[{{First[L]}},Rest[L],n,dir]]
spiral[M_,L_,n_,dir_]:=Module[{dim,n1=Mod[n,2,1],n2=Mod[n+1,2,1]},If[Length[L]<=(dim=Dimensions[M][[n1]]),#1&,spiral[##,Mod[n+dir,4,1],dir]&]@@Quiet[{Join[##,n2]&@@{M,Map[List,If[n<=2\[Xor]dir<1,Reverse,Identity]@Take[PadRight[L,dim],dim],{n2-1}]}[[If[2<=n<=3,{2,1},{1,2}]]],Drop[L,dim]}]]`
spiral[M_,L_,n_,dir_]:=Module[{dim,n1=Mod[n,2,1],n2=Mod[n+1,2,1]},If[Length[L]<=(dim=Dimensions[M][[n1]]),#1&,spiral[##,Mod[n+dir,4,1],dir]&]@@Quiet[{Join[##,n2]&@@{M,Map[List,If[n<=2\[Xor]dir<1,Reverse,Identity]@Take[PadRight[L,dim],dim],{n2-1}]}[[If[2<=n<=3,{2,1},{1,2}]]],Drop[L,dim]}]]`