Could you comment on why there are lots of (non-templated) function definitions in the headers? Looking at it, it doesn't actually look like there is that much, from the two random files I opened. In the first random file I opened[0] I didn't really understand why some of the functions (see link) were defined in the header.
In another file[1] it seemed to make more sense (getters and setters, along with a smallish class where I guess you didn't want to bother making a new file).
[EDIT] Could I also ask why you have defined some very large classes entirely in the cpp files[2]
Also, thanks for this, very interesting to read the source for other large projects.
[0] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9...
[1] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9...
[2] https://github.com/CRYTEK-CRYENGINE/CRYENGINE/blob/63418e7c9...