# CJam, 87 bytes

    l_c'{={VX@{";{}"#"_@+\ 4* 4/"S/=~}/;}{i_4<{"{}"\';*}{{4md\_{F'{\+'}+}{;L}?\';*+}:F~}?}?

[Try it online][1]

First time I used recursion in CJam! The whole thing may look kind of lengthy, but the two completely separate conversions add up.

I used a completely separate case for converting numbers smaller than 4 to Curly. It's probably possible to avoid that, but folding the special case handling into the recursive function wouldn't be entirely trivial. And adding the extra `{}` as a post-processing step didn't really look any better, even though I should try again if it might be slightly shorter.


  [1]: http://cjam.aditsu.net/#code=l_c'%7B%3D%7BVX%40%7B%22%3B%7B%7D%22%23%22_%40%2B%5C%204*%204%2F%22S%2F%3D~%7D%2F%3B%7D%7Bi_4%3C%7B%22%7B%7D%22%5C'%3B*%7D%7B%7B4md%5C_%7BF'%7B%5C%2B'%7D%2B%7D%7B%3BL%7D%3F%5C'%3B*%2B%7D%3AF~%7D%3F%7D%3F&input=96