Make a directory tree Imagine for a second that you can compose a tree out of dots.

       .
      ...
     .....
    .......
   .........
  ...........
 .............
...............
      ...
      ...


This tree is 13 dots tall.

Now imagine for a second that your filesystem looked like these dots. Your task in this challenge is to make a tree out of folders.

The Challenge

Given an input integer (let's call it n), make a tree out of subdirectories. 


In each tree, you should start with a folder called 1. 
In that folder, put the folders 1, 2, and 3. 
In every level of folder thereon until n-3, in folder 1 of this level of the tree, there should be a folder labelled 1 and 2. In folder 2 of this level of the tree, there should be a folder called 3, in folder 3, a folder called called 4, and so on until the last folder (the integer this folder is called, we'll call k), in which there should be a folder called k and one called k+1. 
At level n-3, however, all of the subdirectories but the middle three folders should be replaced with a file with the name that the subdirectories would have had. The middle three subdirectories should remain as subdirectories. 
These three subdirectories should contain a folder called 1, 2, or 3 with respect to the order of these directories' name. 
These are followed by a layer of files where 1 is in folder 1, 2 is in folder 2, and 3 is in folder three. 


The example shown at the top of this question is represented below in folder form.



This would be n = 13.

Rules


You may use builtins for folder creation, but not for subdirectory creation.
All other standard loopholes apply.
You must support past n=5, but do not have to support greater than n=30.
Windows Batch File, 429 423 404 bytes

md 1
set C= call:
set/a M=%1-2
%C%f 1 1 2 L
%C%f 1 2 2 M
%C%f 1 3 2 R
goto:eof
:f
md %1\%2
set/a P=%2+1
set/a Q=%2+2
set/a L=%3+1
set D= (%C%t %1\%2\%P% 
if %L%==%M% (if %4==L .&gt;%1\%2\1
if %Q%==%M%%D%1)else (if %P%==%M%%D%2)else (if %2==%M%%D%3)else .&gt;%1\%2\%P%))
if %4==R .&gt;%1\%2\%Q%
)else (if %4==L%C%f %1\%2 1 %L% L
%C%f %1\%2 %P% %L% M
if %4==R%C%f %1\%2 %Q% %L% R)
goto:eof
:t
md %1\%2
.&gt;%1\%2\%2


Call it with the value of n as a command line parameter.

Here is a visualization of the output tree for n=9:

                   1
                +--+--+
                1  2  3
             +--+  |  +--+
             1  2  3  4  5
          +--+  |  |  |  +--+
          1  2  3  4  5  6  7
       +--+  +  |  |  |  |  +--+
       1  2  3  4  5  6  7  8  9
    +--+  |  |  |  |  |  |  |  +--+
    1  2  3  4  5  6  7  8  9 10 11
 +--+  |  |  |  |  |  |  |  |  |  +--+
 1  2  3  4  5  6  7  8  9 10 11 12 13
                |  |  |
                1  2  3
                |  |  |
                1  2  3