About doing in C++ allowing C# scripting, I found it great!
My experience making these two communicating is really shallow so I could not use this technique!
My point is that making the end-user working in C++ nowadays isn't that productive anymore.
Using XML as scene manager was my choice to avoid binary data being loaded with XMLHttpRequest (HTML5+WebGL Engine).
Other data is a mix of XML and Base64 bytes compressed using LZMA.
So a 'mesh' would be: