diff --git a/modules/asset_loader/include/vkcv/asset/asset_loader.hpp b/modules/asset_loader/include/vkcv/asset/asset_loader.hpp
index 62f3c8a445190cff6aa178357090e03f1456246d..2968cd7c3745ce926059e2ccdbd457758a1a2aa1 100644
--- a/modules/asset_loader/include/vkcv/asset/asset_loader.hpp
+++ b/modules/asset_loader/include/vkcv/asset/asset_loader.hpp
@@ -11,17 +11,8 @@
 #include <cstdint>
 #include <filesystem>
 
-/** These macros define limits of the following structs. Implementations can
- * test against these limits when performing sanity checks. The main constraint
- * expressed is that of the data type: Material indices are identified by a
- * uint8_t in the VertexGroup struct, so there can't be more than UINT8_MAX
- * materials in the mesh. Should these limits be too narrow, the data type has
- * to be changed, but the current ones should be generous enough for most use
- * cases. */
-#define MAX_MATERIALS_PER_MESH UINT8_MAX
-#define MAX_VERTICES_PER_VERTEX_GROUP UINT32_MAX
-
-/** LOADING MESHES
+
+/* LOADING MESHES
  * The description of meshes is a hierarchy of structures with the Mesh at the
  * top.
  *
@@ -46,19 +37,25 @@
 
 namespace vkcv::asset {
 
-/* These return codes are limited to the asset loader module. If unified return
- * codes are defined for the vkcv framework, these will be used instead. */
+/**
+ * These return codes are limited to the asset loader module. If unified return
+ * codes are defined for the vkcv framework, these will be used instead.
+ */
 #define ASSET_ERROR 0
 #define ASSET_SUCCESS 1
 
-/** This enum matches modes in fx-gltf, the library returns a standard mode
- * (TRIANGLES) if no mode is given in the file. */
+/**
+ * This enum matches modes in fx-gltf, the library returns a standard mode
+ * (TRIANGLES) if no mode is given in the file.
+ */
 enum class PrimitiveMode : uint8_t {
 	POINTS=0, LINES, LINELOOP, LINESTRIP, TRIANGLES, TRIANGLESTRIP,
 	TRIANGLEFAN
 };
 
-/** The indices in the index buffer can be of different bit width. */
+/**
+ * The indices in the index buffer can be of different bit width.
+ */
 enum class IndexType : uint8_t { UNDEFINED=0, UINT8=1, UINT16=2, UINT32=3 };
 
 /**
@@ -77,7 +74,9 @@ typedef struct {
 	int addressModeU, addressModeV, addressModeW;
 } Sampler;
 
-/** struct for defining the loaded texture */
+/**
+ * This struct describes a loaded texture.
+ */
 typedef struct {
 	int sampler;		// index into the sampler array of the Scene
 	uint8_t channels;	// number of channels
@@ -85,8 +84,10 @@ typedef struct {
 	std::vector<uint8_t> data;	// binary data of the decoded texture
 } Texture;
 
-/** The asset loader module only supports the PBR-MetallicRoughness model for
- * materials.*/
+/**
+ * The asset loader module only supports the PBR-MetallicRoughness model for
+ * materials.
+ */
 typedef struct {
 	uint16_t textureMask;	// bit mask with active texture targets
 	// Indices into the Scene.textures vector
@@ -99,14 +100,17 @@ typedef struct {
 	struct { float r, g, b; } emissiveFactor;
 } Material;
 
-/** Flags for the bit-mask in the Material struct. To check if a material has a
+/**
+ * Flags for the bit-mask in the Material struct. To check if a material has a
  * certain texture target, you can use the hasTexture() function below, passing
- * the material struct and the enum. */
+ * the material struct and the enum.
+ */
 enum class PBRTextureTarget {
 	baseColor=1, metalRough=2, normal=4, occlusion=8, emissive=16
 };
 
-/** This macro translates the index of an enum in the defined order to an
+/**
+ * This macro translates the index of an enum in the defined order to an
  * integer with a single bit set in the corresponding place. It is used for
  * working with the bitmask of texture targets ("textureMask") in the Material
  * struct:
@@ -135,17 +139,21 @@ enum class PrimitiveType : uint32_t {
     COLOR_0, JOINTS_0, WEIGHTS_0
 };
 
-/** These integer values are used the same way in OpenGL, Vulkan and glTF. This
+/**
+ * These integer values are used the same way in OpenGL, Vulkan and glTF. This
  * enum is not needed for translation, it's only for the programmers
  * convenience (easier to read in if/switch statements etc). While this enum
  * exists in (almost) the same definition in the fx-gltf library, we want to
- * avoid exposing that dependency, thus it is re-defined here. */
+ * avoid exposing that dependency, thus it is re-defined here.
+ */
 enum class ComponentType : uint16_t {
     NONE = 0, INT8 = 5120, UINT8 = 5121, INT16 = 5122, UINT16 = 5123,
     UINT32 = 5125, FLOAT32 = 5126
 };
 
-/** This struct describes one vertex attribute of a vertex buffer. */
+/**
+ * This struct describes one vertex attribute of a vertex buffer.
+ */
 typedef struct {
     PrimitiveType type;			// POSITION, NORMAL, ...
     uint32_t offset;			// offset in bytes
@@ -155,11 +163,13 @@ typedef struct {
     uint8_t  componentCount;		// eg. 3 for vec3
 } VertexAttribute;
 
-/** This struct represents one (possibly the only) part of a mesh. There is
+/**
+ * This struct represents one (possibly the only) part of a mesh. There is
  * always one vertexBuffer and zero or one indexBuffer (indexed rendering is
  * common but not always used). If there is no index buffer, this is indicated
  * by indexBuffer.data being empty. Each vertex buffer can have one or more
- * vertex attributes. */
+ * vertex attributes.
+ */
 typedef struct {
 	enum PrimitiveMode mode;	// draw as points, lines or triangle?
 	size_t numIndices, numVertices;
@@ -176,9 +186,11 @@ typedef struct {
 	int materialIndex;		// index to one of the materials
 } VertexGroup;
 
-/** This struct represents a single mesh as it was loaded from a glTF file. It
+/**
+ * This struct represents a single mesh as it was loaded from a glTF file. It
  * consists of at least one VertexGroup, which then references other resources
- * such as Materials. */
+ * such as Materials.
+ */
 typedef struct {
 	std::string name;
 	std::array<float, 16> modelMatrix;
@@ -204,7 +216,7 @@ typedef struct {
  * @param path must be the path to a glTF or glb file.
  * @param scene is a reference to a Scene struct that will be filled with the
  * 	content of the glTF file being loaded.
- * */
+ */
 int loadScene(const std::filesystem::path &path, Scene &scene);