##Minkolang 0.14, 42 bytes
(xid2;$I2*`,)1-[i1+[" "o]lrx" "$ii-1-D$O].
###Explanation
( Open while loop
x Dump top of stack
i Loop counter (i)
d2; Duplicate and square
$I2* Length of input times two
`, Push (i^2) <= (length of input)
) Close for loop; pop top of stack and exit when it's 0
1-[ Open for loop that repeats sqrt(len(input))-1 times
i1+[ Open for loop that repeats (loop counter + 1) times
" "o Push a space then read in character from input
] Close for loop
l Push 10 (newline)
r Reverse stack
x Dump top of stack
" " Push a space
$i Push the max iterations of for loop
i- Subtract loop counter
1- Subtract 1
D Pop n and duplicate top of stack n times
$O Output whole stack as characters
]. Close for loop and stop.