A correlation matrix has one less degree of freedom than the number of columns in the dataset, so in a multivariate model you should expect at least one fewer component than you have columns.
Consider the example below, you can fill in the values for any column or row by looking for the same value somewhere else in the matrix (the top right and bottom left triangles are the same). Thus, as @Dan_Obermiller pointed out, all of the variation in the matrix can be explained by at least one fewer component than you have columns. If some variables can be fully explained by others, then you could see even fewer eigenvalues/factors.