Terrain generation

First of all i must excuse for my english. Now to the point. Ive read a lot of articles about streaming levels and LOD (CDLOD, quadtree based LOD etc.). In general i understang how it works but cant get how to put it together within UE. I mean i know how to spawn mesh in the world but how to handle lod updates and draw calls and so on? UEs garbage collector with its restrictions of using new operator, actor spawning etc.

The question is how to spawn a lot of meshes in proper way with handling them (removing if needed and moving them) I ended up with spawning AActor derived objects with my procedural mesh as RootComponent but not sure it`s the right way?

Will appreciate any help. Thanks

(and in addition how to cook HLSL shaders via C++ with providing extra user data?)