Hello there,
I was thinking of posting a similar suggestion to vinken's when I found this post. I can't promise you much but if I could get access to the code with some time I might be able to make it good enough for open source or at the very least I can patch it up a bit and fix some bugs to make it just useful...
As for Dotfuscator, I've been using it for a while now, but on this specific project, it causes the application to consume 100% cpu resources when some sections of the app are accessed, I can't tell why, but I've spent many hours going through the IL and eventually gave up on it.
The only problem I've had with yours, is that is a bit too "rename-happy", for example if I got a class with these two methods:
public void method1() { /*do something */ }
public void method2() { ExternalAssembly.method1(); }
after obfuscating it would look like:
public void a() { /* do something */ }
public void b() { ExternalAssembly.a(); }
As you can see, the method1() call to the external assembly got renamed to the new name for the local method1(), needless to say this is a big issue, that would be the first thing I'd fix (if it doesn't take rewritting the whole thing) if you allow me, and depending on how the code looks I might clean it up with time until is good enough to publish..., but if not at least it'll be useful for something...