Good news everybody, the latest version is here and it only took me a year or so to finish it.

After getting complaints about the tool not working on map files that were exported with Trenchbroom, I first tried to take care of that, which I did, it should work now.
Afterwards I first wanted to add more features, because it had been a while and it felt right to make this another “sort of major” release instead of just releasing a bug-fix. Then, naturally, bugs began to appear, accompanied by more bugs and finally: even more bugs.
So, after weeks and weeks of frustration I managed to get rid of those bugs and ended up with a seemingly stable version. Of course I can never really crosstest all variations of settings for every release, so I just hope this current version will work fine for most people. If you stumble across issues please feel free to contact me.
Heads up, I might create a tutorial video on this update and furthermore on Map2Curve in general. I might do this before I release this update, so it might already be available as you read this. I will link it here if or as soon as that is the case.
Download
Main Features Overview
Aside from various bug fixes I added a few mentionable new features: mirroring and carving for input and final brushwork. Mirroring works for both input and final brushwork, carving however is only available for input brushwork. Both features are an addition to the already existing transformations and enable for more variation without the need of providing those yourself in your source map file. Ergo: less work.
mirror 0 // integer value from 0 to 7:
// 0=Off, 1=X, 2=Y, 3=Z, 4=XY, 5=XZ, 6=YZ, 7=XYZ
mirror_src 0 // integer value from 0 to 7:
// 0=Off, 1=X, 2=Y, 3=Z, 4=XY, 5=XZ, 6=YZ, 7=XYZ
mapcarve 0 // off
mapcarve 1 // on: Carve along X-axis before source transformation
mapcarve 2 // on: Carve along X-axis after source transformation
There is also a logging function now that will save all relevant information that came up during the curve generation process to Map2Curve.log. This must be enabled in the GUI settings and is disabled by default.
The GUI was complemented with new controls, tooltips, log tab and a Change All-setting. When this is enabled, all changes on the curve settings will apply to all existing curve objects at once, if there are more than one. Finally I added a new template ConcreteWalk that demonstrates the new mapcarve and mirror settings.

Complete Changelog
CLI v0.87
- Jumped from 0.81 to 0.87 since it felt like a big update, but still not like a major update.
- Added mapcarve command to cut the input brushwork below the x-axis.
mapcarve 0 // off
mapcarve 1 // on: Carve along X-axis before source transformation
mapcarve 2 // on: Carve along X-axis after source transformation
The original behaviour would always preserve your input brushwork instead of carving it. This might not always be desired. By activating mapcarve this behaviour can be overridden. - Added mirror_src and mirror commands to mirror the input and final brushwork on their three axes X, Y and Z. Input brushwork will be mirrored from its individual geometry center, final brushwork from the levels origin (0,0,0). Works with an integer value from 0 to 7:
0=Off, 1=X, 2=Y, 3=Z, 4=XY, 5=XZ, 6=YZ, 7=XYZ
mirror_src 3 // will mirror input brushwork on Z axis
mirror 4 // will mirror final curve brushwork on X and Y axes - Added Logging. Can be used by calling Map2Curve.exe with -log parameter. Will log all information from the console app window to Map2Curve.log in root directory.
- Fixed maps exported from Trenchbroom not being processed properly in some cases (e.g. regular boxes without slopes) which led to crashes. This occured because TB would export those brush faces as tiny planes instead of using the actual vertex positions which M2C relied upon in previous releases.
- Maybe fixed another issue that probably prevented small brushes (e.g. 1, 0.5, 0.25) from being processed without ending up as invalid solid structures. Still, use small brushes (<1) with care!
- Fixed a crash happening in various situations.
- Fixed position of triangulated spike brushes not properly being increased when generating ramps.
- Fixed empty solid entities being exported during RMF file export.
- Changed hstretchamt (horizontal tiling amount) from integer to float. Values like 0.5 or 2.25 are now possible as well.
- Changed automatic texture-tiling (hstretch=1 + hstretchamt=0) behaviour so that it avoids overly compressed texture scales. E.g. X-Scale: 0.1, Y-Scale: 1.0; Instead it will use original X-Scale. Whenever this happens there will be an info message during the process.
- Fixed snap2grid for border brushes (transit_round) for the case when a curve has only one section.
- Fixed automatic triangulation of border brushes for the case when “snap outer vertices of border brushes to grid” (transit_round) is active.
GUI v0.1.2.0
- Added elements for new mapcarve feature
- Added elements for new mirror and mirror_src feature
- Re-Added elements for middle sections (formerly gaps)
- Added Change All setting to apply changes in curve settings to all existing curve objects at once (tab reset and curve functions will ignore this)
- Added some more tooltips
- Added logging option to GUIs program settings
- Highlighted new features
- Added new Template regarding the mapcarve and mirror features
- Fixed tab indexes of all control elements